<?php
	error_reporting(0);	
	ini_set('display_errors', false);
/*-----------------------
Ověření ISBN jestli je v databázi
Popis: Vstupním parametrem je string $isbn a měl by vní být ISBN kód. Funkce vrátí var($) typu boolean. 
!!!!DEPRECATED!!!!
TRUE = isbn je v databázi
FALSE = isbn není platný
Autor: Daniel Meisner
-----------------------*/
function isbn_je_v_db($isbn)
{
	$isbn_v_databazi = mysqli_query($GLOBALS["pripojeni"],"SELECT * FROM `knihy` WHERE `isbn`= '".$isbn."' LIMIT 1 ");
	$je_isbn = (mysqli_num_rows($isbn_v_databazi) == 1);
	return($je_isbn);
}
/*-----------------------
Ověření e-mailu
Popis: Vstupním parametrem je string $email a měl by vní být email. Funkce vrátí var($) typu boolean. 
TRUE = je email
FALSE = není email
Autor: Daniel Meisner
-----------------------*/
function overeni_emailu($email)
{
	$username = "[-a-z0-9!#$%&\'*+/=?^_`{|}~]";
	$domena = "[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])";
	$je_email = preg_match(":^$username+(\\.$username+)*@($domena?\\.)+$domena\$:i",$email);
	$je_email = ($je_email and strlen($email) <= 50);
	return($je_email);
}
/*-----------------------
Ověření ceny
Popis: Vstupním parametrem je integer $cena a měla by vní být částka. Funkce vrátí var($) typu boolean. 
TRUE = je cena v Kč
FALSE = není cena v Kč
Autor: Daniel Meisner
-----------------------*/
function overeni_ceny($cena)
{
	$je_cena = (ctype_digit($cena) && ($cena>0) && ($cena<10000));
	return($je_cena);
	
}
/*-----------------------
Výpis ročníků
Popis: Vypisuje ročníky do selectu. 
Autor: Daniel Meisner
-----------------------*/
function rocnik($vybrany_rocnik = NULL)
{ 
	$rocniky_query = mysqli_query($GLOBALS["pripojeni"],"SELECT * FROM rocniky");
	echo "<select name='rocnik'>";
	foreach($rocniky_query as $rocnik)
	{
		if($rocnik["id"] == $vybrany_rocnik)
		{
			echo "<option value='".$rocnik["id"]."' selected>";
			echo $rocnik["nazev"];
			echo "</option>";	
		}
		else 
		{
			echo "<option value='".$rocnik["id"]."'>";
			echo $rocnik["nazev"];
			echo "</option>";	
		}
	}
	echo "<select>";
	return; 
} 
/*-----------------------
Výpispředmětů
Popis: Vypisuje ročníky do selectu. 
Autor: Daniel Meisner
-----------------------*/
function predmet($vybrany_predmet = NULL)
{
	$predmety_query = mysqli_query($GLOBALS["pripojeni"],"SELECT * FROM predmety");
	echo "<select name='predmet'>";
	foreach($predmety_query as $predmet)
	{
		if($predmet["id"] == $vybrany_predmet)
			{
				echo "<option value='".$predmet["id"]."' selected>";
				echo $predmet["predmet"];
				echo "</option>";	
			}
			else 
			{
				echo "<option value='".$predmet["id"]."'>";
				echo $predmet["predmet"];
				echo "</option>";		
			}	
	}
	echo "<select>";
	return;
}
/*-----------------------
Generování kódu
Popis: Vstupní hodnoty nejsou, výstupní hodnotou je 6 místný unikátní kód (900 000 kombinací)
	   Funkce ověřuje jest-li je už kód v databázi - jestli ano volá sama sebe - generuje nový kód
Autor: Ondřej Wojewoda
-----------------------*/
function generovani_kodu()
{
	$delka = 6; //udává kolika místný bude kód
	$cisla = "0123456789";
	$pocet_cisel = mb_strlen($cisla) - 1; //odečet  kvůli číslování v stringu od 0
	for($i = 0; $i < $delka; $i++) // Tvoření kódu
	{
		$index = mt_rand(0,$pocet_cisel);
		if($i == 0 and $index == 0) //Zabraňuje 0 na začátku řetězce (mění ji na 1)
		{
			$index++;
		}
		$kod .= $cisla[$index];
	}
	/*---- Ověření jestli je kód už použit ----*/
	$kontrolni_query = mysqli_query($GLOBALS["pripojeni"], "SELECT `kod` FROM `inzerat` WHERE `kod` = '$kod'");
	$kontrolni_query_bez_isbn = mysqli_query($GLOBALS["pripojeni"], "SELECT `kod` FROM `inzerat_bez_isbn` WHERE `kod` = '$kod'");
	if(mysqli_num_rows($kontrolni_query) != 0)//pokud nalezne  nějáký záznam vygeneruje kód znovu - pomocí rekurze
	{
		generovani_kodu();
	}
	elseif(mysqli_num_rows($kontrolni_query_bez_isbn) != 0)//pokud nalezne  nějáký záznam vygeneruje kód znovu - pomocí rekurze
	{
		generovani_kodu();
	}
	return($kod);
}
/*-----------------------
Captcha
Popis: 
Autor: Michal Huťka
-----------------------*/
function captcha()
{
	echo "
	<img src='php-library/vykresleni_captcha.php' /> <br />
	<form  method='POST'>
	Prosím opište text: <input type='text' size='4' name='captcha_overeni'> 
    </form>
	";
	if ($_SESSION["captcha_overeni"] == $_POST["captcha_overeni"]) 
	{
		return(true);
	} 
	else 
	{
		if(isset($_POST["odeslano"]))
		{
		echo "<script>
					 window.alert('Opsaný text nesouhlasí.');
			  </script>";
		}
		return(false);
	}
}
/* Ověření délky stringu
* @param string
* @param int maximální délka stringu
* @param int minimální délka stringu - nepovinný
* @return boolean true - kratší než zvolená mez, false - delší než zvolená mez
* autor: Ondřej Wojewoda
*/
function overeni_delky($string,$max_delka,$min_delka = NULL)
{
	$delka = strlen($string);
	if($min_delka == NULL)
	{
		if($delka <= $max_delka)
			return true;
		else
			return false;
	}
	else
	{
		if($delka <= $max_delka and $delka >= $min_delka)
			return true;
		else
			return false;
	}
}
/* Zkrácení délky řetězce a přidání ... pokud je delší než daná mez
* @param string
* @return string - řetězec sloužící k vypsání
* autor: Ondřej Wojewoda
*/
function zkraceni($string)
{
	$delka = strlen($string);
	if($delka >= 30)
	{
		return mb_substr($string,0,30,'UTF-8')."...";
	}
	else
	{
	return $string;
	}
}
/* Vypsání počtu dnů do vypršení platnosti inzerátu
* @param id inzerátu - s připonou isbn pokud je z tabulky isbn
* return int - počet dnů do konce platnosti
* autor: Ondřej Wojewoda
*/
function do_konce_platnosti($id)
{
	$tb = "`inzerat_bez_isbn`";
	$je_s_isbn = preg_match("/isbn/",$id);
	if($je_s_isbn)
	{
		$id = trim($id,"isbn");
		$tb = "`inzerat`";
	}
		$query = mysqli_query($GLOBALS["pripojeni"],"SELECT DATEDIFF(`platnost_od` + INTERVAL 1 MONTH,now()) AS zbyvajicich FROM $tb WHERE `id`=$id"); 
		$query = mysqli_fetch_array($query);
		$zbyva = $query["zbyvajicich"];
		return $zbyva;
}
/*-----------------------
Počítadlo - základní
Popis: Počítadlo, počítá pouze celkové návštěvy. Vhodné do inzerátu. 
Autor: Michal Huťka
-----------------------*/
function pocitadlo_inzerat($id)
{
	$je_s_isbn = preg_match("/isbn/",$id);
	if($je_s_isbn)
	{
		$id = trim($id,"isbn");
		if(!isset($_COOKIE["navstiveno_isbn"]))
		{
			setcookie('navstiveno_isbn');
		}
		if(!preg_match("/".$id."/",$_COOKIE["navstiveno_isbn"]))
		{
			mysqli_query($GLOBALS["pripojeni"],"UPDATE `inzerat` SET `navstiveno`=(`navstiveno` + 1) WHERE `id` = '$id'");
			setcookie('navstiveno_isbn',$_COOKIE['navstiveno_isbn']."-".$id);
		}	
	}
	else
	{
		if(!isset($_COOKIE["navstiveno_bez_isbn"]))
		{
			setcookie('navstiveno_bez_isbn');
		}
		if(!preg_match("/".$id."/",$_COOKIE["navstiveno_bez_isbn"]))
		{
			mysqli_query($GLOBALS["pripojeni"],"UPDATE `inzerat_bez_isbn` SET `navstiveno`=(`navstiveno` + 1) WHERE `id` = '$id'");
			setcookie('navstiveno_bez_isbn',$_COOKIE['navstiveno_bez_isbn']."-".$id);
		}		
	}


}
/* Funkce na výpis - pokud existuje první parametr vypíše ho, pokud ne, vypíše druhý
   pokud neexistuje ani jeden, nevypíše nic
* @param string - primární string
* @param string - sekundární string
* return string - string k vypsání
*/
function primsec_str($prim_str = NULL, $sec_str = NULL)
{
	if($prim_str != NULL)
	{
		echo $prim_str;
		return;
	}
	elseif($sec_str != NULL and $sec_str != " - ")
	{
		echo $sec_str;
		return;
	}
	else
	{
		echo "";
		return;
	}
}
/* Funkce na zobrazení tooltipu
* @param string - Bude vypsan v tooltipu
* autor: Milan Švancara
*/
function tooltip($tooltip,$sirka = 140)
{
        		echo "<div class='tooltips' href='#'>?<span style='width: ".$sirka."px'>$tooltip</span></div>";
				return;
}

/*-----------------------
Funkce ověřující zda se ve formuláři neobjevují sprostá slova.
Popis: Tato funkce hledá pouze slova jako celky.
Autor: Michal Huťka
-----------------------*/
function filtrslovcelek($text)
{
 $text = strtolower($text); // aby nerozlišovalo malá a velká písmena

global $pripojeni;
$zasobaarray = array();
$sql = "SELECT slovo FROM sprosta_slova";
$result = mysqli_query($pripojeni, $sql);
while($row = mysqli_fetch_assoc($result)) {
  $zasobaarray[] = strtolower($row["slovo"]);
}

$zasobaformular = explode(" ", $text);
foreach ($zasobaformular as $rozdeleno)
{
	if(in_array ($rozdeleno, $zasobaarray) == true)
	{ return false;} //když najde sprosté slovo vypíše false
	
}

 
 
}

/*-----------------------
Funkce pro délkovou ochranu 
Popis: Pokud je test bez mezery ve formuláři delší jak 40 znaků, funkce nedovolí formulář odeslat.
Autor: Michal Huťka
-----------------------*/ 
function delkova_ochrana ($text)
{
	
	$retezec = explode (" ", $text);
	foreach ($retezec as $retezec_rozdeleny)
	{
    $pocet_znaku = mb_strlen($retezec_rozdeleny);
	
    
	if($pocet_znaku > 40) 
			{ return false; //pokud bude jednotlivé slovo delší jak 40 znaků, čili bude mít 41 a více,vrátí false
			}
	}
}

?>
